﻿/*
 ***************************************************************************
 * Microsoft Visual C# .NET
 * 名称：       Shpm.System.Web.Control.CheckMaxByteLen
 * 类型：       服务端输入校验类
 * 功能说明：   最大byte长度校验类
 * 作者：       郭晓庆
 * 创建日期：   2007/07/10
 * 修改日期     修改者      修改内容
 * 
 * 
 * ---
 ***************************************************************************
*/
using System;
using System.Collections.Generic;
using System.Text;

namespace Shpm.System.Web.Control
{
    class CheckMaxByteLen : ComAbsChecker
    {
        /** 最大byte长度 */
        private int byteLen = 0;
        private String charCode;

        /**
         * 构造函数
         * @param value  输入值
         * @param byteLen 最大byte长度
         */
        public CheckMaxByteLen(String value, int byteLen, String charCode)
            : base(value)
        {
           
            this.byteLen = byteLen;
            this.charCode = charCode;
        }

        public CheckMaxByteLen(String value, int byteLen, String charCode, Shpm.System.Validator.ComAbsMsg msg)
            : base(value, msg)
        {
            this.byteLen = byteLen;
            this.charCode = charCode;
        }

        /**
         * byte长度检查处理。
         * @param value 输入值
         * @return true:正常 / false:异常
         */
        protected override bool doCheck(String value)
        {

            // 未输入检查
            if (base.isEmpty(value))
            {
                return true;
            }

            try
            {
                // byte长度检查
                switch ("UTF-8")
                {
                    case "UTF-8":
                        if (Encoding.UTF8.GetBytes(value).Length > this.byteLen)
                        {

                            return false;
                        }
                        break;
                }
                
               
            }
            catch
            {
                return false;
            }

            return true;
        }
    }
}
